﻿#pragma once

#include <xy/geom/vec.h>

namespace xy
{

namespace geom
{

struct mesh
{
    std::vector<geom::vec3f> vertices;
    std::vector<geom::vec3f> normals;
    std::vector<geom::vec2f> texcoords;
    std::vector<unsigned int> indices;
    // 巨坑：std::size_t 占用 8 字节，而 unsigned int 占用 4 字节，导致数据错位

    /**
     * @brief 从 obj 文件中读取三维网格数据
     *
     * @param[in] path
     * @param[in] scale
     */
    void read(std::string path, float scale = 1.0f);
};

} // namespace geom

} // namespace xy
